{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Practical 6B: Supervised Learning In-Depth: Support Vector Machines\n",
    "\n",
    "\n",
    "Upon completion of this session you should be able to:\n",
    "- understand how SVM algorithm works.\n",
    "- be able to apply SVM in Python.\n",
    "\n",
    "---\n",
    "- Materials in this module include resources collected from various open-source online repositories.\n",
    "- Jupyter source file can be downloaded from https://github.com/gaoshangdeakin/SIT384-Jupyter\n",
    "- If you found any issue/bug for this document, please submit an issue at [https://github.com/gaoshangdeakin/SIT384/issues](https://github.com/gaoshangdeakin/SIT384/issues)\n",
    "\n",
    "\n",
    "---\n",
    "\n",
    "\n",
    "\n",
    "This practical session will demonstrate one supervised learning algorithm - SVM.\n",
    "\n",
    "\n",
    "## SVM Background"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Previously we introduced supervised machine learning.\n",
    "There are many supervised learning algorithms available; here we'll go into brief detail one of the most powerful and interesting methods: **Support Vector Machines (SVMs)**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy import stats\n",
    "\n",
    "# use seaborn plotting defaults\n",
    "import seaborn as sns; sns.set()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Motivating Support Vector Machines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Support Vector Machines (SVMs) are a powerful supervised learning algorithm used for **classification** or for **regression**. SVMs are a **discriminative** classifier: that is, they draw a boundary between clusters of data.\n",
    "\n",
    "Let's show a quick example of support vector classification. First we need to create a dataset:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets.samples_generator import make_blobs\n",
    "X, y = make_blobs(n_samples=50, centers=2,\n",
    "                  random_state=0, cluster_std=0.60)\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A discriminative classifier attempts to draw a line between the two sets of data. Immediately we see a problem: such a line is ill-posed! For example, we could come up with several possibilities which perfectly discriminate between the classes in this example:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xfit = np.linspace(-1, 3.5)\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')\n",
    "\n",
    "for m, b in [(1, 0.65), (0.5, 1.6), (-0.2, 2.9)]:\n",
    "    plt.plot(xfit, m * xfit + b, '-k')\n",
    "\n",
    "plt.xlim(-1, 3.5);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "These are three *very* different separaters which perfectly discriminate between these samples. Depending on which you choose, a new data point will be classified almost entirely differently!\n",
    "\n",
    "How can we improve on this?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Support Vector Machines: Maximizing the *Margin*\n",
    "\n",
    "Support vector machines are one way to address this.\n",
    "What support vector machines do is to not only draw a line, but consider a *region* about the line of some given width.  Here's an example of what it might look like:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xfit = np.linspace(-1, 3.5)\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')\n",
    "\n",
    "for m, b, d in [(1, 0.65, 0.33), (0.5, 1.6, 0.55), (-0.2, 2.9, 0.2)]:\n",
    "    yfit = m * xfit + b\n",
    "    plt.plot(xfit, yfit, '-k')\n",
    "    plt.fill_between(xfit, yfit - d, yfit + d, edgecolor='none', color='#AAAAAA', alpha=0.4)\n",
    "\n",
    "plt.xlim(-1, 3.5);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice here that if we want to maximize this width, the middle fit is clearly the best.\n",
    "This is the intuition of **support vector machines**, which optimize a linear discriminant model in conjunction with a **margin** representing the perpendicular distance between the datasets."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Fitting a Support Vector Machine\n",
    "\n",
    "Now we'll fit a Support Vector Machine Classifier to these points. While the mathematical details of the likelihood model are interesting, we'll let you read about those elsewhere. Instead, we'll just treat the scikit-learn algorithm as a black box which accomplishes the above task."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "    decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
       "    kernel='linear', max_iter=-1, probability=False, random_state=None,\n",
       "    shrinking=True, tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.svm import SVC # \"Support Vector Classifier\"\n",
    "clf = SVC(kernel='linear')\n",
    "clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To better visualize what's happening here, let's create a quick convenience function that will plot SVM decision boundaries for us:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_svc_decision_function(clf, ax=None):\n",
    "    \"\"\"Plot the decision function for a 2D SVC\"\"\"\n",
    "    if ax is None:\n",
    "        ax = plt.gca()\n",
    "    x = np.linspace(plt.xlim()[0], plt.xlim()[1], 30)\n",
    "    y = np.linspace(plt.ylim()[0], plt.ylim()[1], 30)\n",
    "    Y, X = np.meshgrid(y, x)\n",
    "    P = np.zeros_like(X)\n",
    "    for i, xi in enumerate(x):\n",
    "        for j, yj in enumerate(y):\n",
    "            P[i, j] = clf.decision_function([[xi, yj]])\n",
    "    # plot the margins\n",
    "    ax.contour(X, Y, P, colors='k',\n",
    "               levels=[-1, 0, 1], alpha=0.5,\n",
    "               linestyles=['--', '-', '--'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')\n",
    "plot_svc_decision_function(clf);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice that the dashed lines touch a couple of the points: these points are the pivotal pieces of this fit, and are known as the *support vectors* (giving the algorithm its name).\n",
    "In scikit-learn, these are stored in the ``support_vectors_`` attribute of the classifier:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')\n",
    "plot_svc_decision_function(clf)\n",
    "plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],\n",
    "            s=200, facecolors='none');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's use IPython's ``interact`` functionality to explore how the distribution of points affects the support vectors and the discriminative fit.\n",
    "(This is only available in IPython 2.0+, and will not work in a static view)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7bf4e0bea6e344769372a5a47cadd6b0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='N', options=(10, 200), value=10), Output()), _dom_classes=('widget…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#from IPython.html.widgets import interact\n",
    "from ipywidgets import interact\n",
    "\n",
    "def plot_svm(N=10):\n",
    "    X, y = make_blobs(n_samples=200, centers=2,\n",
    "                      random_state=0, cluster_std=0.60)\n",
    "    X = X[:N]\n",
    "    y = y[:N]\n",
    "    clf = SVC(kernel='linear')\n",
    "    clf.fit(X, y)\n",
    "    plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')\n",
    "    plt.xlim(-1, 4)\n",
    "    plt.ylim(-1, 6)\n",
    "    plot_svc_decision_function(clf, plt.gca())\n",
    "    plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],\n",
    "                s=200, facecolors='none')\n",
    "    \n",
    "interact(plot_svm, N=[10, 200], kernel='linear');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice the unique thing about SVM is that only the support vectors matter: that is, if you moved any of the other points without letting them cross the decision boundaries, they would have no effect on the classification results!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Going further: Kernel Methods\n",
    "\n",
    "Where SVM gets incredibly exciting is when it is used in conjunction with *kernels*.\n",
    "To motivate the need for kernels, let's look at some data which is not linearly separable:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets.samples_generator import make_circles\n",
    "X, y = make_circles(100, factor=.1, noise=.1)\n",
    "\n",
    "clf = SVC(kernel='linear').fit(X, y)\n",
    "\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')\n",
    "plot_svc_decision_function(clf);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Clearly, no linear discrimination will ever separate these data.\n",
    "One way we can adjust this is to apply a **kernel**, which is some functional transformation of the input data.\n",
    "\n",
    "For example, one simple model we could use is a **radial basis function**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = np.exp(-(X[:, 0] ** 2 + X[:, 1] ** 2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we plot this along with our data, we can see the effect of it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f26507c81a53463fa4af4bfcf024b884",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='elev', index=1, options=(-90, 30, 90), value=30), IntSlider(value=…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from mpl_toolkits import mplot3d\n",
    "\n",
    "def plot_3D(elev=30, azim=30):\n",
    "    ax = plt.subplot(projection='3d')\n",
    "    ax.scatter3D(X[:, 0], X[:, 1], r, c=y, s=50, cmap='spring')\n",
    "    ax.view_init(elev=elev, azim=azim)\n",
    "    ax.set_xlabel('x')\n",
    "    ax.set_ylabel('y')\n",
    "    ax.set_zlabel('r')\n",
    "\n",
    "interact(plot_3D, elev=[-90,30, 90], azip=(-180, 180));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that with this additional dimension, the data becomes trivially linearly separable!\n",
    "This is a relatively simple kernel; SVM has a more sophisticated version of this kernel built-in to the process. This is accomplished by using ``kernel='rbf'``, short for *radial basis function*:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "clf = SVC(kernel='rbf', gamma='scale')\n",
    "clf.fit(X, y)\n",
    "\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')\n",
    "plot_svc_decision_function(clf)\n",
    "plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],\n",
    "            s=200, facecolors='none');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here there are effectively $N$ basis functions: one centered at each point! Through a clever mathematical trick, this computation proceeds very efficiently using the \"Kernel Trick\", without actually constructing the matrix of kernel evaluations.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Acknowledgement"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook was put together by [Jake Vanderplas](http://www.vanderplas.com) for PyCon 2015. Source and license info is on [GitHub](https://github.com/jakevdp/sklearn_pycon2015/)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
